package my.com.servlet;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;

/**
 * 字符流响应数据
 *      乱码原因：
 *          对于getWriter获取到的字符流，响应中文必定出现乱码，对于服务器端进行编码时默认使用ISO-8859-1格式编码
 *      乱码解决：
 *          1、设置服务端的编码格式
 *          resp.setCharacterEncoding("utf-8");
 *          2、设置客户端的编码格式
 *           resp.setHeader("content-type","text/html;charset=UTF-8");
 *
 *           总结：设置客户端和服务端的编码都支持中文，且保持一致
 *
 *           同时设置客户端和服务端的编码
                resp.setContentType("text/html;charset=UTF-8");
 */


@WebServlet("/s02")
public class Servlet02 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置服务端的编码格式
        //resp.setCharacterEncoding("utf-8"); //但不能只指定服务端，还需要指定客户端
        //指定客户端的编码格式
        //resp.setHeader("content-type","text/html;charset=UTF-8");

        //同时设置客户端和服务端的编码
        resp.setContentType("text/html;charset=UTF-8");
        /**
         * getWriter()    字符输出流(输出字符串)
         */
        //获取字符输出流
        PrintWriter writer = resp.getWriter();
        //输出流
        writer.write("<h2>你好</h2>");
    }


}